package com.hui.dao;

import com.hui.entity.Product;
import com.hui.mapper.ManagerVoMapper;
import com.hui.mapper.ProductVoMapper;
import com.hui.util.DruidUtil;
import com.hui.vo.ManagerVo;
import com.hui.vo.ProductVo;

import java.util.List;

/**
 * @Description 货物持久层
 * @date 2023/2/10 21:08
 */
public class ProductDao {

    /**
     * 连表查询--货物表&分类表&仓库表
     * 查询所有数据
     **/
    public List<ProductVo> findProductAll() {
        String sql = "select  pr.*,ca.categoryName,wr.warehouseName from tb_product pr,tb_category ca,tb_warehouse wr\n" +
                "where pr.categoryId= ca.categoryId and pr.warehouseId =wr.warehouseId";
        return DruidUtil.commonFindListByParam(sql, new ProductVoMapper());
    }

    /**
     * 新增货物数据
     **/
    public void insertProduct(Product product) {
        String sql = "insert into tb_product values(null,?,?,?,?,?,?,?)";
        DruidUtil.commonUpdate(sql, product.getProductName(), product.getCategoryId(), product.getProductNum(), product.getProductDesc(), product.getCreateTime(), product.getStatus(), product.getWarehouseId());
    }

    /**
     * 删除货物数据
     **/
    public void delProduct(int id) {
        String sql = "delete from tb_product where productId=? ";
        DruidUtil.commonUpdate(sql, id);
    }

    /**
     * 根据id查询ProductVo数据
     **/
    public ProductVo findProductById(int id) {
        String sql = "select  pr.*,ca.categoryName,wr.warehouseName from tb_product pr,tb_category ca,tb_warehouse wr\n" +
                "where pr.categoryId= ca.categoryId and pr.warehouseId =wr.warehouseId and productId=?";
        return DruidUtil.commonFindObjectByParam(sql, new ProductVoMapper(), id);
    }

    /**
     * 修改数据
     **/
    public void updateProductById(Product product) {
        String sql = "update tb_product set productName=?,categoryId=?,productNum=?,productDesc=?,warehouseId=? where productId=?";
        DruidUtil.commonUpdate(sql, product.getProductName(), product.getCategoryId(), product.getProductNum(), product.getProductDesc(), product.getWarehouseId(), product.getProductId());
    }

    /**
     * 出库--修改数量的值
     **/
    public void updateProductNumById(int num, int id) {
        String sql = "update tb_product set productNum=productNum-" + num + " where productId=?";
        DruidUtil.commonUpdate(sql, id);
    }

}
